﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SCMS.Model;
using System.Data.Objects.DataClasses;

namespace SCMS.CoreBusinessLogic._GoodsReceivedNote
{
    public interface IGoodsReceivedNoteService
    {
        bool SaveGRN(List<POItemsView> GRNItemColl, Model.GoodsReceivedNote GRNEntity);
        bool IsAssetDisposed(Model.Asset AssetEntity);
        bool IsAssetStateChanged(Model.AssetManagment Entity);
        string GenerateUniquNumber(CountryProgramme cp);
        bool IsInventoryUpdated(Inventory InventEntity);
        string GenerateAssetNo(Guid ProjectDId);
        string GenerateAssetNo(Model.GoodsReceivedNoteItem GRNItem);
        bool IsGRNVerified(Guid GRNId, List<Model.GoodsReceivedNoteItem> itemz, Guid CPId);
        Model.PurchaseOrder GetPO(Guid POid);
        bool IsAssetRegistered(Model.Asset assetEntity, Guid cpId);
        List<Model.CountrySubOffice> GetCountrySubOffices(Guid cpid);
        List<Model.WareHouse> GetSubOfficeWareHouses(Guid countrysubofficeId);
        List<POItemsView> GetPOItemsDetails(Guid POId);
        List<GoodsReceivedNoteItem> GetUnregisteredGRNItems(Guid cpId);
        List<Model.GoodsReceivedNoteItem> GetGRNItems(Guid GRNId);
        List<Model.GoodsReceivedNoteItem> GetGRNAssetItems(Guid GRNId);
        List<Model.GoodsReceivedNote> GetGRNs(Guid cpId);
        List<Model.GoodsReceivedNoteItem> GetRegisteredAssets(Guid GRNId);
        List<Model.PurchaseOrder> GetGRNPurchaseOrders(Guid countryProgId);
        List<GoodsReceivedNote> GetGRNsForApproval(Staff currentStaff);
        GoodsReceivedNote GetGRNById(Guid id);
        void UpdateGRN(GoodsReceivedNote grn);
        void DeleteGRNById(Guid id);
    }
}
